/**
 * Author@ Cheng Feitian
 * Date: 2021-3-25
 * Description: 静态成员函数
 */

#include <algorithm>
#include <iostream>
#include <string>

using namespace std;
const int maxn = 1024;

/**
 * @brief 静态成员函数
 * 所有对象共享同一个函数
 * 静态成员函数只能访问静态的成员变量
 */

class Person
{
public:
    static void func()
    {
        m_A = 100; //静态成员函数可以访问 静态成员变量
        // m_B = 200;   //静态成员函数 不可以访问 非静态成员变量,无法区分到底是哪个对象的 m_B 属性
        cout << "static void func 的调用！" << endl;
    }
    static int m_A; //静态成员变量
    int m_B;        //非静态成员变量
    //静态成员函数也是有访问权限的
private:
    static void func2(){
        cout << "static void func2的调用！" << endl;
    }
};

int Person::m_A = 0;
//两种访问方式
void test01()
{
    //1.通过对象访问
    Person p;
    p.func();

    //2.通过类名访问
    Person::func();
    // Person::func2();    //类外访问不到私有静态成员函数
}

int main()
{
    test01();
    return 0;
}
